package com.b511.swpu.cementbackend.dao;

import com.b511.swpu.cementbackend.dto.input.dataAnalyze.ConsumptionInputDto;
import com.b511.swpu.cementbackend.dto.input.dataAnalyze.WorkWellCountInputDto;
import com.b511.swpu.cementbackend.dto.output.dataAnalyze.AccessoryConsumption;
import com.b511.swpu.cementbackend.dto.output.dataAnalyze.MaterialConsumption;
import com.b511.swpu.cementbackend.dto.output.dataAnalyze.WellInfo;
import com.b511.swpu.cementbackend.dto.output.dataAnalyze.WorkWellOutputDto;
import com.b511.swpu.cementbackend.entity.BA_Well;
import com.b511.swpu.cementbackend.entity.CM_WK_AccessoryConsume;
import com.b511.swpu.cementbackend.entity.CM_WK_AdditiveConsume;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Collection;
import java.util.List;
import java.util.Set;

@Repository
public interface DataAnalyzeDao {

    // 查询总数 -- 用户分页
    int queryCount(ConsumptionInputDto consumptionInputDto);

    //查询所有的 BA_WELL -- 不分页
    // Input: ConsumptionInputDto
    // Output: List<BA_WELL>
    List<WellInfo> queryWellByCondition(ConsumptionInputDto consumptionInputDto);

    // List<wellName> 查询对应的材料消耗
    List<MaterialConsumption> queryMaterialConsumption(@Param("configSeqs") List<Collection<String>> configSeqs);

    // List<wellName> 查询对应的材料消耗
    List<AccessoryConsumption> queryAccessoryConsumption(@Param("configSeqs") List<Collection<String>> configSeqs);

    // 作业井 总数
    int queryWorkWellCount(WorkWellCountInputDto workWellCountInputDto);

    int wellCount(WorkWellCountInputDto workWellCountInputDto);

    // 作业井查询
    List<WorkWellOutputDto> queryWorkWell(WorkWellCountInputDto workWellCountInputDto);

}
